Network-enabled applications are applications that use communication networks to share information between various devices, each of which might be operated by the same or different user(s). The network-enabled applications include applications such as browser engines, messaging interfaces, remote desktops, and the like that allow users to easily browse, select, and manipulate items being viewed using a network-enabled application. The network-enabled application receives one or more communications (such as code for instantiating webpages) from a service provider that is often encoded in the form of a language (such as the hypertext markup language HTML), which contains elements that describe the structure and functionality of the content that is received by the content user.
The communication networks (such as the Internet) that are used by the networked-enabled applications are often physically or otherwise unsecured. Accordingly, encryption is often used to reduce the likelihood that the communications across the unsecured networks are observed, intercepted, and/or modified by third parties who often would try to exploit the communications. To reduce the opportunity for such exploits, a secure session can be established by networked-enabled applications using a secure socket layer (SSL) to encrypt communications that transpire during a secure session. However, the SSL facility can be compromised by third parties by using exploits related to switching between secure and unsecure transport modes.